home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 September / PCWorld_2006-09_cd.bin / v cisle / hexer / mpth_17.exe / {app} / scripts / Split File.mps < prev    next >
Text File  |  2005-05-22  |  1KB  |  52 lines

  1. INCLUDE '*.lng'
  2. option undo,0
  3.  
  4. number_radix = 16
  5. number_prefix = ''
  6. number_suffix = ''
  7.  
  8. = split a file into different pieces
  9.  
  10. option globalvars, 1
  11.  
  12. var bytesperpart dword, fname text, nameloop word
  13. var curfn text, filein file, filedat file, filetemp file
  14. var data text sum dword blocks dword rest dword fsize dword
  15.  
  16. @@start
  17. filein = fileopen('::current')
  18. fsize = filesize(filein)
  19. bytesperpart = dword(input(__SF1__,__SF2__, '65536'))
  20. fname = asksavefilename(__SF3__):= get part name (apppend .01, .02...)
  21. filedat = fileopen(fname+'.dat','c')
  22.  
  23. nameloop = 1
  24. sum = filesize(filein)
  25. blocks = sum / bytesperpart
  26. rest = sum mod bytesperpart
  27.  
  28. loop writeblockfile blocks
  29. if rest != 0
  30.   bytesperpart = rest
  31.   call writeblockfile
  32. endif
  33.  
  34. fileclose filedat
  35. fileclose filein
  36. showprogress 100
  37. end
  38.  
  39.  
  40. @@writeblockfile
  41. fileread filein data bytesperpart
  42. showprogress fsize, filepos(filein)
  43. curfn=fname+'.'+text(nameloop)
  44. filetemp = fileopen(curfn, 'c')
  45. filewrite filetemp data
  46. fileclose filetemp
  47. filewrite filedat (ExtractName(curfn) + "\n")
  48. inc nameloop 1
  49. return
  50.  
  51.  
  52.